// MBProgressHUDManager.h
#import <UIKit/UIKit.h>
#import "MBProgressHUD.h"

@interface MBProgressHUDManager : NSObject

/**
 显示默认HUD
 */
+ (MBProgressHUD *)showHUD;

/**
 在指定视图上显示HUD
 
 @param view 要显示HUD的视图，nil表示显示在window上
 @param animated 是否使用动画
 */
+ (MBProgressHUD *)showHUDAddedTo:(UIView *)view animated:(BOOL)animated;

/**
 显示带消息的HUD，并在延迟后自动隐藏
 
 @param view 要显示HUD的视图，nil表示显示在window上
 @param message 要显示的消息
 @param delay 延迟隐藏的时间
 @param completionBlock 隐藏后的回调
 */
+ (MBProgressHUD *)showHUDInView:(UIView *)view
                        withMessage:(NSString *)message
                          afterDelay:(NSTimeInterval)delay
                     completionBlock:(void (^)(void))completionBlock;

/**
 显示纯文本提示（无指示器）
 
 @param view 要显示HUD的视图，nil表示显示在window上
 @param message 要显示的消息
 @param delay 延迟隐藏的时间
 */
+ (MBProgressHUD *)showTextHUDInView:(UIView *)view
                            withMessage:(NSString *)message
                              afterDelay:(NSTimeInterval)delay;

/**
 显示带偏移的文本提示
 
 @param view 要显示HUD的视图，nil表示显示在window上
 @param message 要显示的消息
 @param yOffset y轴偏移量
 @param delay 延迟隐藏的时间
 */
+ (MBProgressHUD *)showTextHUDInView:(UIView *)view
                            withMessage:(NSString *)message
                              yOffset:(CGFloat)yOffset
                              afterDelay:(NSTimeInterval)delay;

/**
 显示详细文本提示
 
 @param view 要显示HUD的视图，nil表示显示在window上
 @param message 要显示的详细消息
 @param delay 延迟隐藏的时间
 */
+ (MBProgressHUD *)showDetailTextHUDInView:(UIView *)view
                                withMessage:(NSString *)message
                                    afterDelay:(NSTimeInterval)delay;

/**
 隐藏HUD
 */
+ (void)hideHUD;

/**
 隐藏指定视图上的HUD
 
 @param view 要隐藏HUD的视图，nil表示window
 @param animated 是否使用动画
 */
+ (void)hideHUDForView:(UIView *)view animated:(BOOL)animated;

/**
 检查指定视图上是否存在HUD
 
 @param view 要检查的视图，nil表示window
 @return 是否存在HUD
 */
+ (BOOL)hasHUDInView:(UIView *)view;

@end
